/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.thinkgem.jeesite.modules.ajz.service;

import java.util.List;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.thinkgem.jeesite.common.service.TreeService;
import com.thinkgem.jeesite.common.utils.StringUtils;
import com.thinkgem.jeesite.modules.ajz.dao.AjzBaseinfoDao;
import com.thinkgem.jeesite.modules.ajz.entity.AjzBaseinfo;
import com.thinkgem.jeesite.modules.sys.entity.Dict;
import com.thinkgem.jeesite.modules.sys.entity.Office;
import com.thinkgem.jeesite.modules.sys.entity.User;

/**
 * 门店区域划分表Service
 * @author whh
 * @version 2017-09-14
 */
@Service
@Transactional(readOnly = true)
public class AjzBaseinfoService extends TreeService<AjzBaseinfoDao, AjzBaseinfo> {
	
	/**
	 * 获取id获取user
	 * @param str
	 * @return
	 */
	public User getRealSysUserById(String id){
		return dao.getRealSysUserById(id);
	}
	
	/**
	 * 获取同一片区域内另一个同名office
	 * @param str
	 * @return
	 */
	public Office getAnoterOffice(Office office){
		return dao.getAnoterOffice(office);
	}
	/**
	 * 通过手机号获取ajzbaseinfo
	 * @param str
	 * @return
	 */
	public AjzBaseinfo getRealAjzBaseinfoByTelephone(String str){
		return dao.getRealAjzBaseinfoByTelephone(str);
	}
	/**
	 * 通过officeId获取ajzbaseinfo
	 * @param str
	 * @return
	 */
	public AjzBaseinfo getAjzBaseinfoByOfficeId(String str){
		return dao.getAjzBaseinfoByOfficeId(str);
	}
	/**
	 * 通过手机号获取user
	 * @param str
	 * @return
	 */
	public User getRealSysUserByTelephone(String str){
		return dao.getRealSysUserByTelephone(str);
	}
	/**
	 * 获取下拉框可选项
	 * @param str
	 * @return
	 */
	public List<Dict> findSelectList(String str){
		return dao.findSelectList(str);
	}
	/**
	 * 获取子类list
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoChildList(AjzBaseinfo  ajzBaseinfo){
		return dao.findBaseinfoChildList(ajzBaseinfo);
	}
	
	/**
	 * 获取子类list
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoSpChildList(AjzBaseinfo  ajzBaseinfo){
		return dao.findBaseinfoSpChildList(ajzBaseinfo);
	}
	
	/**
	 * 获取子类list
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoSpaqChildList(AjzBaseinfo  ajzBaseinfo){
		return dao.findBaseinfoSpaqChildList(ajzBaseinfo);
	}
	
	/**
	 * 获取子类list
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoXfDmChildList(AjzBaseinfo  ajzBaseinfo){
		return dao.findBaseinfoXfDmChildList(ajzBaseinfo);
	}
	/**
	 * 获取子类list
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoXfCzwChildList(AjzBaseinfo  ajzBaseinfo){
		return dao.findBaseinfoXfCzwChildList(ajzBaseinfo);
	}
	/**
	 * 获取子类list
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoRiGhChildList(AjzBaseinfo  ajzBaseinfo){
		return dao.findBaseinfoRiGhChildList(ajzBaseinfo);
	}
	/**
	 * 获取子类list
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findBaseinfoRiGdChildList(AjzBaseinfo  ajzBaseinfo){
		return dao.findBaseinfoRiGdChildList(ajzBaseinfo);
	}
	
	
	/**
	 * 通过负责人获取AjzBaseinfo
	 * @param investigationId
	 * @return
	 */
	public AjzBaseinfo getAjzBaseinfoByInvestigationId(String investigationId){
		return dao.getAjzBaseinfoByInvestigationId(investigationId);
	}
	
	/**
	 * get子类list并且坐标不能为空
	 * @param ajzBaseinfo
	 * @return
	 */
	public List<AjzBaseinfo> findChildList(AjzBaseinfo ajzBaseinfo){
		return dao.findChildList(ajzBaseinfo);
	}

	public AjzBaseinfo get(String id) {
		return super.get(id);
	}
	
	public List<AjzBaseinfo> findList(AjzBaseinfo ajzBaseinfo) {
		if (StringUtils.isNotBlank(ajzBaseinfo.getParentIds())){
			ajzBaseinfo.setParentIds(","+ajzBaseinfo.getParentIds()+",");
		}
		return super.findList(ajzBaseinfo);
	}
	
	@Transactional(readOnly = false)
	public void save(AjzBaseinfo ajzBaseinfo) {
		super.save(ajzBaseinfo);
	}
	
	@Transactional(readOnly = false)
	public void delete(AjzBaseinfo ajzBaseinfo) {
		super.delete(ajzBaseinfo);
	}

	public List<AjzBaseinfo> findByTypeAndOffi(String ajzType, String officeId) {
		return ((AjzBaseinfoDao)this.dao).findByTypeAndOffi(ajzType, officeId);
	}
}